#include <iostream>
#include <algorithm>
#include <vector>

int main(void)
{
    std::vector<int> v = {1,3,5,7,9};

    auto isEven = [](int i){ return i % 2 != 0; };
    bool isAllOdd = std::all_of(v.begin(), v.end(), isEven); //检查区间中是否所有的元素都满足一元判断式, 所有的元素都满足条件返回true，否则返回false
    if(isAllOdd)
        std::cout << "all is odd" << std::endl;
    bool isNoneEven = std::none_of(v.begin(), v.end(), isEven); //是否所有的元素都不满足一元判断式，所有的元素都不满足条件时，返回true，否则返回false
    if(isNoneEven)
        std::cout << "none is even" << std::endl;
    bool anyof = std::any_of(v.begin(), v.end(), isEven); //是否至少有一个元素满足一元判断式，只要有一个元素满足条件就返回true，否则返回false
    if(anyof)
        std::cout << "at least one is even" << std::endl;

    //find_if_not 查找不符合某个条件的元素
    return 0;
}
